iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 14
0
自我挑戰組

不要太認真學 Python! 之 我又重新報名了系列 第 14

不要太認真學 Python! - Day 17

  • 分享至 

  • xImage
  •  

[前情提要]

昨天做一個猜數字的小遊戲,因為不太瞭解 continue、break、while、for 這幾個關鍵字,因此無法順利執行「是否要參與比賽」的這段程式碼。

還好,IT人溫暖多,各路邦友來幫忙,讓我比較懂得其中的差異)跪謝各大神們


我覺得程式碼也像媽媽在罵人之類的,首先一定會先罵重點,然後再細項逐條開罵。如果副線越來越多,所以就更要先想好怎麼統整成開頭的重點,後面才能更有條理的逐條大罵,也不會脫離主線。

首先,我把 while 拿掉,中間改成 if/else ,最近真的好常和 if/else 合作喔!
希望可以不要太常出現,想學點別的 哈哈哈

改了以後,我改成下面這段程式碼

import random

print('歡迎進入猜數字遊戲,玩家們準備好了嗎?')
GuessGame = input('是否要進入遊戲?(YES/NO)')
if (GuessGame.lower() == "no"):
    exit()
elif (GuessGame.lower() == "yes"):
    print("遊戲正式開始!")
else:
    exit()

rang1 = int(input("請設定本局遊戲的最小值:"))
rang2 = int(input("請設定本局遊戲的最大值:"))
num = random.randint(rang1,rang2)
guess = "guess"
i = 0
while guess != num:
    i += 1
    guess = int(input("你猜數字多少:"))
    if guess == num:
        print("恭喜,你猜對了!")
    elif guess < num:
        print("再大一點!!")
    else:
        print("再小一點!!")
print("你總共猜了%d" %i + "次"",快點再來一局!!!")

結果成功運行!!!!!

BUT!!!

又來了 時間又要到了!!!ε=ε=ヾ(;゚д゚)/

下圖就是正在研究的我...
https://ithelp.ithome.com.tw/upload/images/20190918/20120423rla99hHxiY.jpg

不過今天應該會比較快紀錄完)努力中!!!


其實,到了剛剛那裡就可以結束了。

我剛剛那個

BUT!!!

其實是因為我又很自找麻煩...

https://ithelp.ithome.com.tw/upload/images/20190919/20120423vMrxJeegnS.jpg

我想要在下面這行程式碼的後面再加上兩個動作。

print("你總共猜了%d" %i + "次"",快點再來一局!!!")

1.第一個動作就是,詢問「是否要重新開始?」我想讓玩家可以選擇是否要重新開始新的一局。

2.如果「要」,就回到第一個動作也就是下方這行程式碼這裡,如果「不要」就停止這個遊戲。

print('歡迎進入猜數字遊戲,玩家們準備好了嗎?')

就這樣我在最後新增一小段程式碼,完整程式碼如下。
結果可想而知,還是很悲劇。

import random

print('歡迎進入猜數字遊戲,玩家們準備好了嗎?')
GuessGame = input('是否要進入遊戲?(YES/NO)')
if (GuessGame.lower() == "no"):
    exit()
elif (GuessGame.lower() == "yes"):
    print("遊戲正式開始!")
else:
    exit()

rang1 = int(input("請設定本局遊戲的最小值:"))
rang2 = int(input("請設定本局遊戲的最大值:"))
num = random.randint(rang1,rang2)
guess = "guess"
i = 0
while guess != num:
    i += 1
    guess = int(input("你猜數字多少:"))
    if guess == num:
        print("恭喜,你猜對了!")
    elif guess < num:
        print("再大一點!!")
    else:
        print("再小一點!!")
print("你總共猜了%d" %i + "次"",快點再來一局!!!")

print('還要再玩新的一局嗎?')
GuessGame = input('要?不要?(YES/NO)')
if (GuessGame.lower() == "yes"):
    print("新的一局即將開始!")
    def start(GuessGame):
        GuessGame.lower() == "yes"
        return start
else:
    exit()

我覺得應該 return 的關係吧?
去谷歌了一下,return 通常都是跟 def 搭配
就這樣自己試打了一段,結果無法運作...

明天又要繼續爬教程了 囧
不過今天整體的學習狀況自己還蠻滿意的。

https://ithelp.ithome.com.tw/upload/images/20190919/20120423dAlZf7By9O.jpg

開心收工!!


不要太認真學 Python! - Day 16


上一篇
不要太認真學 Python! - Day 16
下一篇
不要太認真學 Python! - Day 18
系列文
不要太認真學 Python! 之 我又重新報名了31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1

大部分程式語言的return是用在「有人呼叫這個程式」的時候...
這個程式「要給那個人答案」才會用return

EX. 如果有一個副程式叫做 i_need_rand,呼叫後就可以得到一個隨機的數字

x = i_need_rand()

x此時就有一個隨機數字
那麼i_need_rand裡面就可以這樣寫

def i_need_rand():
    return random.randint(0, 1000)

之類的寫法,這時候x就可以因為這個return收到資料囉~
...
...
...
...
...
...
SO 如果你要讓程式整個重新可以跑一遍,簡單點的方法有2個

  1. 用一個「大大大」while把整個包住 (相信你懂得 ?
while(????):
    # 你整個程式碼
    # 你整個程式碼
    # 你整個程式碼
print('game over')
  1. 用你說的return,但是變成副程式,再用while
def my_game(????): # <- ????看你有沒有輸入參數,沒有就空的也可以
    # 你遊戲程式碼
    # 你遊戲程式碼
    # 你遊戲程式碼
    return start

go = True # <- 這邊是先讓go可以通過第一次while
while(go == True):
    go = my_game(????) # <- 這邊的go 等於回傳(return)的start

之類的(吧? 希望有幫到你XDD

我要留言

立即登入留言